.TH "IXP_PSTRINGS" 3 "2012 Dec" "libixp Manual"


.SH NAME

.P
ixp_pstrings

.SH SYNOPSIS

.nf
#include <ixp.h>

void ixp_pstrings(IxpMsg *msg, uint16_t *num, char *strings\fI[]\fR, uint max);
.fi


.SH DESCRIPTION

.P
Packs or unpacks an array of UTF\-8 encoded strings. The packed
representation consists of a 16\-bit element count followed by
an array of strings as packed by \fBixp_pstring(3)\fR. The unpacked
representation is an array of nul\-terminated character arrays.

.P
If \fImsg\fR\->mode is MsgPack, \fI*num\fR strings in the array
pointed to by \fIstrings\fR are packed into the buffer at
\fImsg\fR\->pos. If \fImsg\fR\->mode is MsgUnpack, \fI*num\fR is loaded
with the number of strings unpacked, the array at
\fI*strings\fR is loaded with pointers to the unpacked strings,
and \fI(*strings)\fI[0]\fR\fR must be freed by the user. In either
case, \fImsg\fR\->pos is advanced by the number of bytes read or
written. If the action would advance \fImsg\fR\->pos beyond
\fImsg\fR\->end, \fImsg\fR\->pos is still advanced, but no other
action is taken. If \fI*num\fR is greater than \fImax\fR,
\fImsg\fR\->pos is set beyond \fImsg\fR\->end and no other action is
taken.

.SH SEE ALSO

.P
\fIIxpMsg\fR, \fIixp_pstring\fR, \fIixp_pdata\fR

.\" man code generated by txt2tags 2.6 (http://txt2tags.org)
.\" cmdline: txt2tags -o- ixp_pstrings.man3
